██████╗ ███████╗████████╗██╗██████╗ ███████╗██████╗ ██╗ █████╗
██╔══██╗██╔════╝╚══██╔══╝██║██╔══██╗██╔════╝██╔══██╗██║██╔══██╗
██████╔╝█████╗ ██║ ██║██████╔╝█████╗ ██║ ██║██║███████║
██╔══██╗██╔══╝ ██║ ██║██╔═══╝ ██╔══╝ ██║ ██║██║██╔══██║
██║ ██║███████╗ ██║ ██║██║ ███████╗██████╔╝██║██║ ██║
╚═╝ ╚═╝╚══════╝ ╚═╝ ╚═╝╚═╝ ╚══════╝╚═════╝ ╚═╝╚═╝ ╚═╝
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
MongoDB
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
mwbgMongoDB (da "humwbwmongous", enorme) è un mwcaDBMS non relazionale, mwcqorientato ai documenti.
Classificato come un database di tipo mwcwNoSQL, MongoDB si allontana dalla struttura tradizionale basata su tabelle dei mwdadatabase relazionali in favore di documenti in stile mwdqJSON con schema dinamico (MongoDB chiama il formato mwdgBSON), rendendo l'integrazione di dati di alcuni tipi di applicazioni più facile e veloce.
Sviluppato inizialmente dalla società di software 10gen (ora diventata MongoDB Inc.) nell'ottobre 2007 come un componente di un prodotto di mweaplatform as a service, l'azienda si è spostata verso un modello di sviluppo mweqopen source nel 2009, con 10gen in grado di offrire un supporto commerciale e altri servizi.cite-ref-1[1] Da allora, MongoDB è stato adottato come backend da un alto numero di grandi siti web e società di servizi come mwfgCraigslist, mwfweBay, mwgaFoursquare, mwgqSourceForge e il mwggmwgwThe New York Times, tra gli altri. MongoDB è il più popolare database NoSQL.cite-ref-0-2-0[2]
Contents
• Storia
• Note
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Storia
Lo sviluppo di MongoDB è iniziato nel 2007, quando l'azienda (allora chiamata 10gen) stava sviluppando un mwiwplatform as a service simile a mwjaWindows Azure o mwjqGoogle App Engine.cite-ref-3[3] Nel 2009, MongoDB è stato reso open source come prodotto indipendente con una licenza mwkgGNU AGPL.
Licenza e supporto
MongoDB è disponibile gratuitamente sotto la Server Side Public License. Le librerie per i vari linguaggi sono disponibili sotto la mwnwApache License. In aggiunta, MongoDB Inc. offre licenze commerciali per MongoDB.cite-ref-6[6]
Caratteristiche principali
Alcune delle caratteristiche principali sono:
mwpwQuery ad hoccite-ref-7[7]
• MongoDB supporta ricerche per campi, intervalli e mwrgregular expression. Le query possono restituire campi specifici del documento e anche includere funzioni definite dall'utente in JavaScript.
mwsaIndicizzazionecite-ref-8[8]
• Qualunque campo in MongoDB può essere indicizzato (gli indici in MongoDB sono concettualmente similari a quelli dei tradizionali database relazionali). Sono disponibili anche indici secondari, indici unici, indici sparsi, indici geospaziali e indici full text.
mwuaAlta Disponibilitàcite-ref-9[9]
• MongoDB fornisce alta disponibilità e aumento del carico gestito attraverso i replica set. Un replica set consiste in due o più copie dei dati. Ogni replica può avere il ruolo di copia primaria o secondaria in qualunque momento. La replica primaria effettua tutte le scritture e le letture. Le repliche secondarie mantengono una copia dei dati della replica primaria attraverso un meccanismo di replicazione incluso nel prodotto. Quando una replica primaria fallisce, il replica set inizia automaticamente un processo di elezione per determinare quale replica secondaria deve diventare primaria. Le copie secondarie possono anche effettuare letture, con dati eventualmente consistenti di default.
mwwaSharding e bilanciamento dei daticite-ref-10[10]
• MongoDB scala orizzontalmente usando lo sharding. L'utente deve scegliere una chiave di sharding, che determina come i dati di una collection saranno distribuiti tra i vari nodi. I dati sono divisi in intervalli (basati sulla chiave di shard) e distribuiti su molteplici shard (uno shard è un replica set, quindi con una replica primaria e due o più repliche secondarie).
• MongoDB include un meccanismo di bilanciamento dei dati, spostando gli intervalli di dati da uno shard troppo carico a uno shard meno carico, in modo da bilanciare la distribuzione dei dati all'interno del cluster.
mwyqFile Storagecite-ref-11[11]
• MongoDB può essere usato anche come un mwaafile system, traendo vantaggio dalla caratteristiche di replicazione e di bilanciamento su più server per memorizzare file, anche di grandi dimensioni.
• Questa funzione, chiamata GridFS, è inclusa nei driver di MongoDB e disponibile facilmente per tantissimi linguaggi di sviluppo. MongoDB espone delle funzioni per la manipolazione dei file. GridFS è usato, ad esempio, nei plugin di NGINX e lighttpd. Invece di memorizzare il file in un singolo documento, GridFS divide il file in tante parti più piccole, chiamate chunks, e memorizza ognuno di questi chunk in un documento separato.
• Ai file possono essere associati dei mwawmetadati, su cui è possibile anche creare degli indici full-text.
mwbqAggregazionecite-ref-12[12]
• MongoDB supporta due modalità di aggregazione dei dati: il MapReduce e l'Aggregration Framework. Quest'ultimo lavora come una mwdapipeline e permette di ottenere risultati molto più rapidamente del MapReduce grazie all'implementazione in C++.
mwdgCapped Collectioncite-ref-13[13]
• MongoDB supporta collection a dimensioni fisse chiamate capped collection. Questo tipo di collection mantiene l'ordine di inserimento e una volta raggiunta la dimensione definita, si comporta come una coda circolare.
Supporto ai linguaggi di programmazione
MongoDB ha reso disponibili mwfwSDK ufficiali per i più popolari linguaggi di programmazione e ambienti di sviluppo. Esistono anche moltissimi progetti non ufficiali, sviluppati e supportati dalla comunità, per fornire supporto ad alcuni linguaggi meno diffusi.
Gestione e amministrazione del database
MongoDB Inc. mette a disposizione il servizio di monitoraggio e di backup, chiamato MMScite-ref-14[14]. Tramite l'installazione di un agent locale che invia dati al server MMS nel cloud, questo permette di monitorare le istanze di MongoDB senza dover installare software. L'utilizzo del servizio è subordinato all'acquisto di una licenza commerciale.
Oltre a MMS ci sono alcuni tools già presenti nell'installazione di MongoDB:
mwiamongocite-ref-15[15]
• MongoDB offre una shell interattiva chiamata mwjwmongo, la quale permette agli sviluppatori di:
• vedere, inserire, rimuovere e aggiornare i dati nei loro database;
• ottenere informazioni sulla replicazione, sulla configurazione dello sharding;
• spegnere i server;
• eseguire del codice JavaScript;
• molto altro.
• È possibile accedere alle informazioni amministrative anche attraverso unmwlw'mwmainterfaccia web che fornisce informazioni sullo stato corrente del server. La porta predefinita per l'interfaccia web è di 1000 superiore a quella predefinita del database (quindi 28017).
mwmgmongostatcite-ref-16[16]
• mwoqmongostat è uno strumento a riga di comando che visualizza una lista riassuntiva delle statistiche di un'istanza di MongoDB in esecuzione: quante e che tipo di query sono eseguite così come la percentuale di tempo in cui il database è rimasto lockato e quanta memoria sta usando. Questo tool è simile al comando vmstat di UNIX/Linux.
mwpgmongotopcite-ref-17[17]
• mongotop è uno strumento a linea di comando che fornisce un metodo per tracciare la quantità di tempo usata da un'istanza di MongoDB a leggere e a scrivere dati. Fornisce statistiche a livello di collection. Di default, mongotop ritorna valori al secondo. Questo tool è simile al comando mwrqtop di UNIX/Linux.
mwrwmongosniffcite-ref-18[18]
• mongosniff è un tool command-line che fornisce uno sniffing a basso livello dell'attività del database monitorando il traffico di rete in entrata e in uscita. Richiede la libreria di rete Libpcap ed è disponibile solo per i sistemi UNIX-like. Un'alternativa cross-platform open source è mwtwWireshark, un analizzatore di pacchetti che ha il pieno supporto del protocollo di MongoDB.
mwuqmongoimport, mongoexportcite-ref-19[19]
• mongoimport è un'utility command-line per importare il contenuto da un file JSON, CSV o TSV creato da mongoexport o da qualunque export di terze parti che ne rispettino il formato.
mwwqmongodump, mongorestore
• mongodump è un'utility command-line per creare un export binario del contenuto di un database MongoDB. Mongorestore può essere usato per ricaricare un dump fatto con mongodump.
Popolarità
Secondo db-engines.com, a maggio 2025 MongoDB è al quinto posto della classifica dei database più diffuso al mondo e al primo posto dei database NoSQL.cite-ref-0-2-1[2]
Al 9 agosto 2022, MongoDB Inc. conta circa 31.000 clienti attivi che utilizzano il loro database per salvare i propri dati.cite-ref-20[20]
Implementazioni popolari
Alcuni degli utilizzatori più significativi di MongoDB sono:
• mw2qCraigslist memorizza oltre 2 miliardi di documenti in MongoDB.
• mw3qSAP usa MongoDB in SAP platform-as-a-service.
• mw5wThe New York Times usa MongoDB nella sua applicazione di caricamento di fotografie.cite-ref-23[23]
• mw7qSourceforge usa MongoDB come storage delle pagine.
• mw8qCodecademy usa MongoDB come datastore per il suo sistema di learning online.
• Shuttefly usa MongoDB per la sua piattaforma di fotografie. Nel 2013 la piattaforma aveva oltre 18 miliardi di foto caricate da oltre 7 milioni di utenti.
• mw-qCERN usa MongoDB come back-end del Data Aggregation System nel mw-gLarge Hadron Collider.
• mw-gFoursquare implementa MongoDB su mw-wAmazon AWS per memorizzare località e le registrazioni degli utenti nelle località.cite-ref-24[24]
• OwlStat utilizza MongoDB per il salvataggio delle statistiche.
Note
cite-note-11. ↑ mwarqmwarumwary10gen diventa MongoDB, su mwarcgigaom.com. mwargURL consultato il 3 maggio 2019 mwark(archiviato dall'mwarourl originale il 16 novembre 2018).
cite-note-0-22. ↑ mwasa(mwasemwasiEN) mwasmmwasqDB-Engines Ranking, su mwasuDB-Engines. mwasyURL consultato il 9 agosto 2022.
cite-note-33. ↑ mwasomwassmwaswIl papà di MongoDB: la mia creatura è meglio di Google Big Tables, su mwas0theregister.co.uk.
cite-note-44. ↑ mwatemwatimwatmMongoDB 1.4 è pronto per la produzione, su mwatqblog.mongodb.org mwatu(archiviato dall'mwatyurl originale l'8 luglio 2014).
cite-note-55. ↑ mwatomwatsmwatwAnnouncing MongoDB 3.0 | MongoDB, su mwat0mongodb.com.
cite-note-66. ↑ mwaue(mwauimwaumEN) mwauqmwauuMongoDB Atlas Database | Multi-Cloud Database Service, su mwauyMongoDB. mwaucURL consultato il 9 agosto 2022.
cite-note-77. ↑ mwaus(mwauwmwau0EN) mwau4mwau8MongoDB CRUD Operations — MongoDB Manual, su mwavawww.mongodb.com. mwaveURL consultato il 9 agosto 2022.
cite-note-88. ↑ mwavu(mwavymwavcEN) mwavgmwavkIndexes — MongoDB Manual, su mwavowww.mongodb.com. mwavsURL consultato il 9 agosto 2022.
cite-note-99. ↑ mwav8(mwawamwaweEN) mwawimwawmReplication — MongoDB Manual, su mwawqwww.mongodb.com. mwawuURL consultato il 9 agosto 2022.
cite-note-1010. ↑ mwawk(mwawomwawsEN) mwawwmwaw0Sharding — MongoDB Manual, su mwaw4www.mongodb.com. mwaw8URL consultato il 9 agosto 2022.
cite-note-1111. ↑ mwaxm(mwaxqmwaxuEN) mwaxymwaxcGridFS — MongoDB Manual, su mwaxgwww.mongodb.com. mwaxkURL consultato il 9 agosto 2022.
cite-note-1212. ↑ mwax0(mwax4mwax8EN) mwayamwayeAggregation Operations — MongoDB Manual, su mwayiwww.mongodb.com. mwaymURL consultato il 9 agosto 2022.
cite-note-1313. ↑ mwayc(mwaygmwaykEN) mwayomwaysCapped Collections — MongoDB Manual, su mwaywwww.mongodb.com. mway0URL consultato il 9 agosto 2022.
cite-note-1414. ↑ mwazemwazimwazmMMS, su mwazqmms.mongodb.com.
cite-note-1515. ↑ mwazg(mwazkmwazoEN) mwazsmwazwmongo Shell Quick Reference — MongoDB Manual, su mwaz0www.mongodb.com. mwaz4URL consultato il 9 agosto 2022.
cite-note-1616. ↑ mwaai(mwaammwaaqEN) mwaaumwaaymongostat — MongoDB Database Tools, su mwaacwww.mongodb.com. mwaagURL consultato il 9 agosto 2022.
cite-note-1717. ↑ mwaawmwaa0mwaa4mongotop, su mwaa8docs.mongodb.org.
cite-note-1818. ↑ mwabmmwabqmwabumongosniff, su mwabydocs.mongodb.org.
cite-note-1919. ↑ mwabomwabsmwabwmongoimport, su mwab0docs.mongodb.org.
cite-note-2020. ↑ mwace(mwacimwacmEN) mwacqmwacuOur Customers, su mwacyMongoDB. mwaccURL consultato il 14 giugno 2021.
cite-note-2121. ↑ mwacs(mwacwmwac0EN) mwac4mwac8MetLife's "Wall" Powered by MongoDB, su mwadaDATAVERSITY, 22 novembre 2013. mwadeURL consultato il 14 giugno 2021.
cite-note-2222. ↑ mwadu(mwadymwadcEN) mwadgmwadkForbes Embraces MongoDB On Google Cloud As Part Of Digital-first Strategy, su mwadoaster.cloud, 14 novembre 2020. mwadsURL consultato il 14 giugno 2021.
cite-note-2323. ↑ mwad8(mwaeamwaeeEN) mwaeimwaemCase Study: The New York Times Runs MongoDB, su mwaeqMongoDB. mwaeuURL consultato il 14 giugno 2021 mwaey(archiviato dall'mwaecurl originale il 14 giugno 2021).
cite-note-2424. ↑ mwaes(mwaewmwae0EN) mwae4mwae8OSCON: How foursquare uses MongoDB to manage its data, su mwafaDell Technologies. mwafeURL consultato il 17 giugno 2021.
cite-note-2525. ↑ mwafumwafymwafcHow eBay Solves the Database Scaling Problem with MongoDB - Hybrid Cloud Management and Automation | Morpheus, su mwafgmorpheusdata.com. mwafkURL consultato il 17 giugno 2021.
Voci correlate
Altri progetti
Altri progetti
• Wikimedia Commons
• Wikimedia Commons contiene immagini o altri file su MongoDB
Collegamenti esterni
• (EN) Sito ufficiale, su mongodb.com.
• MongoDB, su packages.debian.org.
• Repository sorgenti di MongoDB, su github.com.
• citereffree-software-directory(EN) MongoDB, su Free Software Directory.
• mwagwSito della 10gen, su 10gen.com.
• mwag4MongoDB Italian linkedIn group, su linkedin.com.
• mwaha(EN) Admin UIs, su mongodb.com. Elenco delle principali interfacce di amministrazione sul sito di MongoDB.